const {
	list,
	rsp,
	parseData,
	paresPostData
} = require('../utils.js');
const Router = require('koa-router');
const router = new Router();

//获取全校列表数据
router.get('/list', (ctx, next) => {
	//获取筛选参数
	const { field, value, page = 1, limit = 10 } = ctx.request.query;
	let result = null;
	//匹配条件筛选项
	if (field && value) {
		result = list.filter(cs => {
			//转化为字符串
			let val = cs[field].toString();
			//判断包含关系
			return val.includes(value)
		})
	} else {
		result = list;
	}
	//再匹配页码条件
	const total = result.length;
	result = result.slice((page - 1) * limit, page * limit);
	ctx.body = rsp({
		list: result,
		//当前页码
		page,
		limit,
		//总共查询到的条数
		total
	})
})
//编辑或新增班级数据
router.post('/set', async (ctx, next) => {
	let { id, ...param } = await paresPostData(ctx);
	let msg = '';
	if (id) {
		//如果id存在，则为修改操作
		//根据ID找到该班级
		let cs = list.find(cs => cs.id === Number(id));
		Object.assign(cs, param);
		msg = '编辑成功';
	} else {
		//如果id不存在，则为新增操作
		//构造新的id,需要找到班级最大的id
		let id = 0;
		list.forEach(cs => {
			if (id < cs.id) id = cs.id;
		})
		//对新增的班级编号
		param.id = id + 1;
		//开班
		list.push(param);
		msg = '新增成功';
	}
	//操作成功的响应
	ctx.body = rsp({}, msg);
})

//删除班级数据
router.get('/delete', (ctx, next) => {
	const { id } = ctx.request.query;
	if (id) {
		//找到班级的下标
		let index = list.findIndex(cs => cs.id === Number(id));
		//删除对应的班级
		list.splice(index, 1)
		//操作成功的响应
		ctx.body = rsp();
	}
})


module.exports = router.routes()
